package com.hunny.prototype;

import com.hunny.builder.one.Student;
import lombok.Data;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;

/**
 * 学生原型
 * 原型模式与单例模式冲突
 *
 * @author Create By Cb
 * @date 2022/04/25
 * @since 2022/4/25 10:39
 */
public abstract class StudentPrototype implements Cloneable {

    /**
     * 名字
     */
    private String name;

    /**
     * 年龄
     */
    private int age;

    /**
     * 爱好
     */
    protected ArrayList<String> hobbies = new ArrayList<>();

    /**
     * 克隆
     *
     * @return {@link Student}
     */
    @Override
    public Object clone() {
        try {
            return super.clone();
        } catch (CloneNotSupportedException e) {
            throw new AssertionError();
        }
    }

    /**
     * 显示
     */
    public abstract void show();
}